DAIではシングルサインオン(SSO) はどのように機能しますか?
シングル サインオン (SSO) を有効にすると、DAI は Microsoft Entra ID などの外部 ID プロバイダーを使用して、ユーザーの管理と認証を行うことができます。SSO が有効な場合、DAI は ID プロバイダーのユーザー管理および認証機能を、組み込み ID およびアクセス管理 (IAM) プロバイダーである Keycloak と統合します。このページでは、DAI で SSO を実装する方法を簡単にまとめます。
Intended Audience: このトピックは、SSO 統合を検討している DAI 管理者を対象としています。
DAI は、OpenID 接続 (OIDC) または Security Assertion Markup Language (SAML) v2 プロトコルのいずれかの ID プロバイダーとして、Microsoft Entra ID (旧称 "Azure AD") との統合をサポートしています。以下は、これらのオプションに関する情報へのリンクです。
統合の仕組みをよりよく理解するために、以下のリンク先のページを読む前に、このページの残りの部分を読むことをお勧めします。
-
Entra ID および OIDC との統合については、Entra ID および OIDC を使用した DAI での SSO の有効化 を参照してください。
-
Entra ID および SAML v2 との統合については、Entra ID および SAML v2 を使用した DAI での SSO の有効化 を参照してください。
SSOとDAIの統合について話すとき、その組み込みアクセスおよびIDプロバイダーであるKeycloakについて話します。
仕組み
次の図は、DAI と ID プロバイダー間でユーザー データがどのように管理および共有されるかをまとめたものです。
ユーザーデータとアセットデータはどこに保存されますか?
DAI で SSO が有効になっている場合、以下で説明するように、ユーザーデータは ID プロバイダーによって管理され、アセットデータとアクセス制御は Keycloak によって管理されます。
Id プロバイダーはユーザー データを管理します
ユーザーとその資格情報は、ID プロバイダー (MS Entra ID) によって排他的に作成および管理されます。ユーザー(DAI Viewer、User、またはAdmin) へのロールの割り当ても、IDプロバイダーによって排他的に管理されます。ユーザーが初めて DAI にログインすると、Keycloak は ID プロバイダから受け取った情報に基づいてユーザーのコピーを作成します。
DAIはモデルアクセスを管理します
DAI(具体的にはKeycloak)は、アクセスグループとそれらのグループのメンバーシップを引き続き所有および管理します。DAI アクセス グループは ID プロバイダーに格納されず、SSO には関与せず、ID プロバイダーのグループとは無関係です。DAIはグループを使用してDAIモデルへのアクセス制御を管理します。
Keycloak は、ユーザーとそのロールの割り当てのコピーを保持し、ユーザーがログインするたびに Id プロバイダーからのデータと関連付けます。
ビヘイビア
DAI で SSO を有効にすると、ユーザーは次の認証動作を経験します。
-
ユーザーがまだログインしていないときにDAIにアクセスしようとすると、ログインするためにIDプロバイダーにリダイレクトされ、成功するとDAIにリダイレクトされます。
-
同様に、DAI からログアウトすると、ID プロバイダーからログアウトされます。
-
SSO を有効にしてユーザーが初めて DAI にログインすると、DAI は Keycloak にユーザーレコードを作成し、そのユーザーにロールを割り当てます。 これは、ID プロバイダーから DAI に送信されたデータに基づいています。
-
その後のログインごとに、このユーザー アカウントは再利用されますが、Id プロバイダーからの変更があれば最新のstateに保たれます。
-
DAIのパスワードと多要素認証(MFA) 機能は無効になり、ユーザーから隠されます。
-
DAI のユーザー作成および編集機能は無効になります。
-
DAIの管理者であれば、DAIのManage Access機能にアクセスすることはできますが、ユーザーアカウントの作成や編集はできません。DAIに一度以上ログインしたユーザーのみが表示されます。
明確化
以下は、DAI SSO統合の仕組みに関 する追加の説明のリストです。
-
DAI システム管理者ユーザーは、Keycloak でローカル ユーザーとして保持されます。このユーザーは引き続きシステムのアップグレードに使用され、Eggplantカスタマーサポートと協力してKeycloak関連の問題を調査する際に使用できます。このユーザーではDAIにログインできませんが、Keycloak管理コンソールにはアクセスできます。
-
同様に、DAI サービスのサービス アカウント (サービス間認証など) は、引き続き Keycloak でローカルに管理されます。
-
DAIのManage Accessページからremove usersは引き続き可能です。ただし、これはユーザーをKeycloakから削除するだけです。ID プロバイダーからユーザーは削除されません。「ユーザーの削除」は、ID プロバイダーからユーザーを削除し、Keycloak からユーザーを削除する場合に使用できます。Keycloak からユーザーを削除し、ID プロバイダからは削除しなかった場合、そのユーザーが後で DAI にログインしようとすると、DAI はそのユーザーを以前にシステムにアクセスしたことのない新しいユーザーとして扱い、Keycloak に新しいユーザーレコードを作成します。
-
Keycloak内からユーザーを有効または無効にして、DAIへのアクセスを一時的に取り消すことはできます。
-
DAIは、ユーザーがDAIに初めてログインするまで、ユーザーについて知りません。初回ログインまでは、DAIのアクセス管理画面にユーザーが表示されず、グループに追加することもできません。
-
認証情報(パスワードなど)がDAI(ま たはKeycloak)と共有されることはなく、認証と認証情報の管理はお客様のIDプロバイダーが単独で責任を負います。
DAI での SSO サポートの範囲
-
Keycloak は現在、System for Cross-domain Identity Management (SCIM) API をサポートしていません。ユーザーが Active Directory から削除されても、そのユーザーは Keycloak から自動的に削除されません。
-
Keycloak はほとんどの ID プロバイダ (少なくとも OIDC または SAML 2 をサポートするプロバイダ) と統合できますが、DAI は現時点では Entra ID との統合のみをサポートしています。